package com.small.site.service.impl;

import com.small.site.base.IPermissionService;
import com.small.site.dao.SysPermissionDao;
import com.small.site.ibase.impl.BaseServiceImpl;
import com.small.site.pojo.SysPermission;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * @author xiaochi
 * @date 2021/12/2 21:59
 * @desc PermissionServiceImpl
 * 注意在使用 dubbo 时，如果需要事务，则需要在 @Service上加上 interfaceClass 属性，指定接口类型，
 * 如果不指定，这个接口被多个代理，不知道找那个接口，导致服务发布不成功
 */
@SuppressWarnings("all")
@DubboService(interfaceClass = IPermissionService.class)
public class PermissionServiceImpl extends BaseServiceImpl<SysPermission> implements IPermissionService {

    @Autowired
    private SysPermissionDao sysPermissionDao;

    /**
     * 根据用户id查询用户拥有的权限列表，不包括菜单结构，用于 security认证授权
     * @param userId
     * @return
     */
    @Override
    public List<SysPermission> getPermissionByUserId(String userId) {
        return sysPermissionDao.getPermissionByUserId(userId);
    }

    /**
     * 通过 id 查询是否有子级
     * @param id
     * @return
     */
    @Override
    public int selectChild(String id) {
        return sysPermissionDao.selectChild(id);
    }
}
